В языке Julia текст обрабатывается с помощью двух различных архитектурных объектов: 32-битный символ примитив и неизменяемый, строка, закодированная в формате UTF-8. В отличие от других языков, где символ — это строка длиной один элемент, в Julia тип Char рассматривается как числовой тип первого класса, представляющий кодовую точку Юникода.
1. Иерархия типов и память
Конкретный Char — это 32-битный примитивный тип (подтип AbstractChar). Встроенная String (подтип AbstractString), поддерживает весь диапазон Юникода. В то время как Char имеет фиксированный размер, а String имеет переменную ширину; отдельные символы занимают от 1 до 4 байт, причём точка перехода для символов ASCII находится на $0x80(128)$.
2. Арифметика и сравнение
Поскольку Char представляет числовую кодовую точку, вы можете выполнять арифметические операции. Используйте Int('a') чтобы получить 97, и Char(97) чтобы получить 'a'. Поддерживаются лексикографические сравнения: 'X' < 'x' — истинно, потому что заглавные буквы предшествуют строчным в Юникоде.
| Функция | Символ ('a') | Строка ("a") |
|---|---|---|
| Тип | Char | String |
| Размер | Фиксированный 32-битный | Переменный, кодировка UTF-8 |
| Изменяемость | Н/Д (значение) | Нет (неизменяемый) |
Цепочки сравнений, такие как 'A' <= 'X' <= 'Y' возвращают истину или ложь на основе последовательности Юникода.